package Mysql.v1;

/* * JDBC可以完成CRUD操作【增加、修改、删除】
 * 使用 JDBC规范 查询操作
 * 1.加载驱动：注册Mysql驱动
 * 2.准备SQL：链接成功Mysql服务器
 * 3.发送SQL：执行查询操作
 * 4.擦汗寻结果集：ResultSet 接口
 * 5.处理结果集：显示查询数据
 * 6.关闭资源
 */

import java.sql.*;

public class MysqlJDBCV1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册Mysql驱动---Java---Driver接口
        Class.forName("com.mysql.jdbc.Driver");
        //2.准备SQL，同时准备发送sql工具类
        String username = "root";
        String password = "";
        String url = "jdbc:mysql://127.0.0.1:3309/mi?characterEncoding=UTF-8";
        //链接成功Mysql sql工具类--Java--DriverManager接口
        //DriverManager接口--》getConnection方法：传入三个参数
        //getConnection 方法连接成功--返回对象Connection对象
        //了打印Connection对象：代表JDBC链接Mysql成功
        Connection con =
                DriverManager.getConnection(url, username, password);
        //打桩：测试是否连接成功
        System.out.println("测试Java链接数据库对象:" + con);

        //3.发送SQL:查询mi库-->book表数据
        String sql = "select * from book";
        //通过链接成功Connection对象.createStatement()
        //createStatement()链接数据库，返回Statement对象
        //Statement对象--Java---链接数据库并且返回Statement对象
        //Statement对象:执行静态sql--具备CRUD功能：查增改删
        Statement st = con.createStatement();
        //4.executeUpdate(sql) 增删改 操作 使用方法 返回值int类型
        //                                       成功几条sql
        //  executeQuery(sql)  查询   操作 使用方法 返回ResultSet接口
        //                                       查询结果集
        ResultSet rs = st.executeQuery(sql);
        //ResultSet对象--Java--查询到的数据保存对象
        //5.处理结果集：显示book表所有记录数【数据】
        System.out.println("------查询book表结果如下------");
        //显示数据--book表哪些字段，类型必须知道
        //   取【显示】7个字段，类型 mysql int[整型] varchar[字符串]
        //   取【显示】7个字段，类型 java  int[整型] String[字符串]
        //ResultSet对象提供方法 next()依次取出每个字段记录【数据】
        //前提：不知道多少字段:依次数据--while
        while (rs.next()) { //取出每个[7个]字段记录【数据】
            //getInt(“字段名”)取字段名下类型
            int id = rs.getInt("id");
            //getString("字段名")取字段名下类型
            String author = rs.getString("author");
            String name = rs.getString("name");
            int price = rs.getInt("price");
            String date = rs.getString("date");
            int number = rs.getInt("number");
            String discount = rs.getString("discount");
            //打桩：打印作者记录
            System.out.println("作者：" + author+"，打折情况："+discount);
        }
    }
}
